package org.groupg.project;

import groovy.text.GStringTemplateEngine;
import groovy.text.SimpleTemplateEngine;
import groovy.text.Template;
import groovy.text.markup.MarkupTemplateEngine;

import java.util.HashMap;
import java.util.Map;

public class ComplexGroovyTemplateExample {
    public static void main(String[] args) throws Exception {
        // 定义模板内容（通过属性定义）
        String templateContent = """
            <%
                // Groovy 脚本逻辑
                def items = [1, 2, 3, 4, 5]
                def total = items.sum()
            %>
            <html>
                <head>
                    <title>Groovy 模板示例</title>
                </head>
                <body>
                    <h1>Hello, ${name}!</h1>
                    <p>当前时间: <%= new Date() %></p>
                    <p>以下是您的数据：</p>
                    <ul>
                        <% items.each { item -> %>
                            <li>Item ${item}</li>
                        <% } %>
                    </ul>
                    <p>总计: ${total}</p>
                    <% if (total > 10) { %>
                        <p>总计大于 10！</p>
                    <% } else { %>
                        <p>总计小于或等于 10。</p>
                    <% } %>
                </body>
            </html>
        """;

        // 创建模板引擎
        GStringTemplateEngine gStringTemplateEngine = new GStringTemplateEngine();
        MarkupTemplateEngine markupTemplateEngine = new MarkupTemplateEngine();
        SimpleTemplateEngine engine = new SimpleTemplateEngine();

        // 编译模板
        Template template = engine.createTemplate(templateContent);

        // 创建数据模型
        Map<String, Object> model = new HashMap<>();
        model.put("name", "Groovy 用户");

        // 渲染模板
        String output = template.make(model).toString();

        // 输出结果
        System.out.println(output);
    }
}